package day20171215;

import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<String, Integer>();

        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader("D:\\names.txt"));

            String sno = null;

            //读取学生的学号，并存入map集合
            while ((sno = reader.readLine()) != null){
                map.put(sno,0);
//                System.out.println(sno);
            }

            File file = new File("D:\\面向对象程序设计Java2016级信本1班实验4");

            File[] files = file.listFiles();

            //遍历文件夹下的每一个文件
            for (File f : files){

                String fileName = f.getName();
//                System.out.println(fileName);

                //面向对象程序设计Java2016级信本1班1606101024何鑫实验一.docx

                //从字符串提取部分信息：1606101024
                Matcher matcher = Pattern.compile("信本1班(\\d+.*)实验").matcher(fileName);

//                如果map集合中有该学生的信息，则向map集合输入学号，1；
//                如果没有该同学的信息，则向map集合输入学号，0
                while (matcher.find()){
//                    System.out.println(matcher.group(1));
                    if (map.get(matcher.group(1)) == null){
                        map.put(matcher.group(1),0);
                    } else {
                        map.put(matcher.group(1),1);
                    }
//
////                遍历获取到的学号
////                System.out.println(matcher.group(1));
                }
            }

//            遍历map集合
            for (Map.Entry<String, Integer> entry : map.entrySet()) {

//                调试map集合元素
//                System.out.println(entry.getKey() + "\t" + entry.getValue());

//                将value值为0的学号和value值打印
                if (entry.getValue() == 0){
                    System.out.println("未交作业学生学号为：" +
                            "" + entry.getKey() + ", Value = " + entry.getValue());

                }

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
